﻿using System.ComponentModel;

namespace LiveTiss.LiveTissWCF
{
    public partial class Login : IDataErrorInfo
    {
        private string SenhaConfirmaField;
        public string SenhaConfirma
        {
            get
            {
                return this.SenhaConfirmaField;
            }
            set
            {
                if ((object.ReferenceEquals(this.SenhaConfirmaField, value) != true))
                {
                    this.SenhaConfirmaField = value;
                    this.RaisePropertyChanged("SenhaConfirma");
                }
            }
        }

        public bool Validate { get; set; }
        public bool ValidateNovo { get; set; }

        public Login()
        {
            this.Validate = true;
            this.ValidateNovo = false;
        }

        private string _error = null;
        public string Error { get { return _error; } }

        public string this[string propertyName]
        {
            get
            {
                _error = null;
                switch (propertyName)
                {
                    case "Usuario":
                        if (this.Validate)
                        {
                            if (string.IsNullOrEmpty(this.UsuarioField))
                            {
                                _error = "Campo Obrigatório";
                            }
                        }
                        break;
                    case "SenhaNova":
                    case "SenhaConfirma":
                        if (this.Validate)
                        {
                            if (this.SenhaNovaField != null && !this.SenhaNovaField.Equals(this.SenhaConfirmaField))
                            {
                                _error = "Senha e confirmação não são iguais";
                            }
                            if (this.ValidateNovo && string.IsNullOrEmpty(this.SenhaNovaField))
                            {
                                _error = "Campo Obrigatório";
                            }
                        }
                        break;
                }

                return _error;
            }
        }
    }
}
